﻿@model PcaParqueos.BOL.oVwPagoAbonado 

@{
    var X = Html.X();
}

@(
 X.GridPanel()
        .ID("GridPagosAbonados")
        .Title("Pagos Abonados")
        .Flex(1)
        .Store(
            X.StoreForModel()
                .ID("storePagosAbonados")
                .Parameters(p =>
                {
                    p.Add(new StoreParameter() { Name = "clienteId", Value = "App.clienteId.getValue()", Mode = ParameterMode.Raw });
                    p.Add(new StoreParameter() { Name = "detalle", Value = "App.detallePago.getValue()", Mode = ParameterMode.Raw });
                })
                .Proxy(X.AjaxProxy()
                    .Url(Url.Action("GetList", "PagoAbonado", new { area = "Parqueos" }))
                    .Reader(X.JsonReader().RootProperty("data"))
                )
                .RemoteSort(false)
                .PageSize(20)
        )
        .ColumnModel(
                X.Column().DataIndex(Model, m => m.strserienumero).Text("Ticket N°").Width(100),
                X.DateColumn().DataIndex(Model, m => m.fecha_hora_emision).Text("Fecha-Hora Emision").Format("dd MMMM yyyy hh:mm tt").Align(Alignment.Center).Flex(1),
                X.Column().DataIndex(Model, m => m.detalle).Text("Detalle").Flex(1), 
                X.Column().DataIndex(Model, m => m.precio_venta).Text("Monto").Width(100).Align(Alignment.Right).Renderer("PcaGlobal.moneyFormat")
        )
        .TopBar(
            X.Toolbar()
                .Items(
                    X.Button()
                        .ID("btnNuevo")
                        .Text("Nuevo")
                        .Disabled(true) 
                        .Icon(Icon.Add)
                        .DirectEvents(de =>
                        {
                            de.Click.Url = Url.Action("FrmComprobante", "PagoAbonado");
                            de.Click.ExtraParams.Add(new Parameter { Name = "clienteId", Value = "App.clienteId.getValue()", Mode = ParameterMode.Raw });
                            de.Click.Failure = "PcaGlobal.showError(result.msg);";
                            de.Click.EventMask.ShowMask = true;
                            de.Click.EventMask.Msg = "Consultando...";
                        }),
                    X.ToolbarSeparator(),
                    X.ComboBox()
                        .ID("clienteId")
                        .FieldLabel("Abonado")
                        .MarginSpec("0 0 0 7")
                        .LabelWidth(60)
                        .Width(400)
                        .QueryMode(DataLoadMode.Remote)
                        .AllowBlank(false)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("cliente_id")
                        .EmptyText("Seleccione...")
                        .PageSize(10)
                        .MinChars(0)
                        .QueryParam("filtro")
                        .TriggerAction(TriggerAction.Query)
                        .ListConfig(
                            Html.X().BoundList()
                                .LoadingText("Buscando...")
                                .ItemTpl(
                                    Html.X().XTemplate()
                                        .Html(@<text>
                                        <div class="search-item">
                                            <h3><span>{tipo_documento_identidad}:{numero_documento_identidad}</span>{nombre}</h3>
                                            Direccion: {pais}-{direccion}
                                        </div>
                                        </text>)
                                )
                        )
                        .Store(
                            X.StoreFor(typeof(PcaSocios.BOL.oVwCliente))
                                .AutoLoad(false)
                                .Proxy(X.AjaxProxy()
                                    .Url(Url.Action("GetList", "Cliente", new {area = "Socios" }))
                                    .Reader(X.JsonReader().RootProperty("data"))
                                )
                        )
                        .Listeners(l =>
                        {
                            l.Select.Fn = "onSelectCliente";
                            l.Change.Fn = "onChangeCliente";
                        }),
                    X.Button()
                        .ID("btnEditarTarifa")
                        .Text("Editar tarifa")
                        .Disabled(true)
                        .Icon(Icon.Add)
                        .DirectEvents(de =>
                        {
                            de.Click.Url = Url.Action("FrmEditarTarifa", "PagoAbonado");
                            de.Click.ExtraParams.Add(new Parameter { Name = "clienteId", Value = "App.clienteId.getValue()", Mode = ParameterMode.Raw });
                            de.Click.Failure = "PcaGlobal.showError(result.msg);";
                            de.Click.EventMask.ShowMask = true;
                            de.Click.EventMask.Msg = "Consultando...";
                        }),
                    X.ToolbarFill(),
                    X.TextField()
                        .ID("detallePago")
                        .Width(200)
                        .Disabled(true)
                        .EnableKeyEvents(true)
                        .EmptyText("Buscar por detalle...")
                        .Cls("upperTxt")
                        .Triggers(
                            X.FieldTrigger()
                                .Hidden(true)
                                .Icon(TriggerIcon.Clear)
                        )
                        .Listeners(l =>
                        {
                            l.KeyUp.Handler = @"if (Ext.isEmpty(App.detallePago.getValue(), false)) {
                                                        App.detallePago.setValue('');
                                                        App.detallePago.getTrigger(0).hide();
                                                    } else {
                                                        App.detallePago.getTrigger(0).show();
                                                    }";
                            l.TriggerClick.Handler = @"App.detallePago.setValue('');
                                                       App.detallePago.getTrigger(0).hide();
                                                       App.GridPagosAbonados.getSelectionModel().deselectAll(); 
                                                       App.storePagosAbonados.load();";
                            l.SpecialKey.Handler = @"if(e.getKey() == e.ENTER){
                                                        e.stopEvent();
                                                        App.GridPagosAbonados.getSelectionModel().deselectAll(); 
                                                        App.storePagosAbonados.load();
                                                    }";
                        })
                )
        )
        .BottomBar(
            X.PagingToolbar()
                .DisplayInfo(true)
                .DisplayMsg("Mostrando pagos {0}-{1} de {2}")
                .EmptyMsg("No existen pagos")
        )
)
